package br.com.usapre.faces;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.business.NoticiasBusiness;
import br.com.data.Noticias;
import br.com.utilidades.database.data.Criterio;
import br.com.utilidades.faces.SimpleMessageBean;

/**
 * @version 1.0.0
 * @since Fevereiro,28 2013
 * @author Eduardo Francisco Barbosa
 */
@Component
@Scope("view")
public class NoticiasBean extends SimpleMessageBean implements Serializable {

    private static final long serialVersionUID = 6024637930513128951L;

    private List<Noticias> noticias;

    private NoticiasBusiness noticiasBusinessImpl;

    /**
     * Construtor
     */
    @Autowired
    public NoticiasBean(NoticiasBusiness noticiasBusinessImpl) {

	this.noticiasBusinessImpl = noticiasBusinessImpl;

	reset();
    }

    /**
     * reset
     */
    public void reset() {

	List<Criterio> criterios = new ArrayList<Criterio>();

	Criterio crit = new Criterio();
	crit.setCampo("tipoNoticia.id");
	crit.setComparacao("=");
	crit.setTipo(Criterio.TIPO_INTEGER);
	crit.setValue(1);

	criterios.add(crit);

	crit = new Criterio();
	crit.setCampo("dataInicial");
	crit.setComparacao("<=");
	crit.setTipo(Criterio.TIPO_TIMESTAMP);
	crit.setValue(new Date());

	criterios.add(crit);

	crit = new Criterio();
	crit.setCampo("dataFinal");
	crit.setComparacao(">=");
	crit.setTipo(Criterio.TIPO_TIMESTAMP);
	crit.setValue(new Date());

	criterios.add(crit);

	crit = new Criterio();
	crit.setCampo("status");
	crit.setComparacao("=");
	crit.setTipo(Criterio.TIPO_BOOLEAN);
	crit.setValue(Boolean.TRUE);

	criterios.add(crit);

	noticias = noticiasBusinessImpl.buscarPorCriterios(criterios, " dado4 DESC ", 20);

    }

    // SETS AND GETS
    public List<Noticias> getNoticias() {
	return noticias;
    }

    public void setNoticias(List<Noticias> noticias) {
	this.noticias = noticias;
    }

}
